<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title>libnoise: Documentation</title>
  <link rel='stylesheet' type='text/css' href='doxygen.css'>
  <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
 </head>
 <body>
  <table class='layout'>
   <tr>
    <td class='sidebar' rowspan='2'>
     <p>
      Navigation menu
     </p>
     <ul class='toc'>
      <li>
       <a href='http://libnoise.sourceforge.net/index.html'>Main</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/downloads/index.html'>Downloads</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/coherentnoise/index.html'>What is coherent noise?</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/noisegen/index.html'>Generating coherent noise</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/glossary/index.html'>Glossary</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/examples/index.html'>Examples</a>
       <ul class='toc'>
        <li>
         <a href='http://libnoise.sourceforge.net/examples/textures/index.html'>Procedural textures</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/examples/complexplanet/index.html'>Complex planetary surface</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/examples/worms/index.html'>Perlin worms</a>
        </li>
       </ul>
      </li>
      <li>
       <strong>Docs</strong>
      </li>
      <li>
       <a href='tutorials/index.html'>Tutorials</a>
       <ul class='toc'>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial1.html'>Tutorial 1</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial2.html'>Tutorial 2</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial3.html'>Tutorial 3</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial4.html'>Tutorial 4</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial5.html'>Tutorial 5</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial6.html'>Tutorial 6</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial7.html'>Tutorial 7</a>
        </li>
        <li>
         <a href='http://libnoise.sourceforge.net/tutorials/tutorial8.html'>Tutorial 8</a>
        </li>
       </ul>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/cvs/index.html'>CVS</a>
      </li>
      <li>
       <a href='http://libnoise.sourceforge.net/links/index.html'>Links</a>
      </li>
     </ul>
    </td>
    <td class='header'>
     <p>
      <img src='libnoise.png' alt='libnoise logo'>
     </p>   
     <p>
      A portable, open-source, coherent noise-generating library for C++
     </p>
     <hr>
    </td>
   </tr>
   <tr>
    <td class='content'>

<!-- start rich gooey content -->
<!-- Generated by Doxygen 1.3.9.1 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
<h1>libnoise</h1>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">group &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__models.html">Models</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">group &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__modules.html">Noise Modules</a></td></tr>

<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1Exception.html">noise::Exception</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Abstract base class for libnoise exceptions.  <a href="classnoise_1_1Exception.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionInvalidParam.html">noise::ExceptionInvalidParam</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Invalid parameter exception.  <a href="classnoise_1_1ExceptionInvalidParam.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionNoModule.html">noise::ExceptionNoModule</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">No module exception.  <a href="classnoise_1_1ExceptionNoModule.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionOutOfMemory.html">noise::ExceptionOutOfMemory</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Out of memory exception.  <a href="classnoise_1_1ExceptionOutOfMemory.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnoise_1_1ExceptionUnknown.html">noise::ExceptionUnknown</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unknown exception.  <a href="classnoise_1_1ExceptionUnknown.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnoise_1_1module_1_1ControlPoint.html">noise::module::ControlPoint</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This structure defines a control point.  <a href="structnoise_1_1module_1_1ControlPoint.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="libnoise::uint"></a>
typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga0">noise::uint</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unsigned integer type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga1" doxytag="libnoise::uint32"></a>
typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga1">noise::uint32</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">32-bit unsigned integer type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga2" doxytag="libnoise::uint16"></a>
typedef unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga2">noise::uint16</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">16-bit unsigned integer type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga3" doxytag="libnoise::uint8"></a>
typedef unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga3">noise::uint8</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">8-bit unsigned integer type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga4" doxytag="libnoise::int32"></a>
typedef int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga4">noise::int32</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">32-bit signed integer type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5" doxytag="libnoise::int16"></a>
typedef short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga5">noise::int16</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">16-bit signed integer type. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6" doxytag="libnoise::int8"></a>
typedef char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga6">noise::int8</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">8-bit signed integer type. <br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga26">noise::NoiseQuality</a> { <a class="el" href="group__libnoise.html#gga26a12">noise::QUALITY_FAST</a> =  0, 
<a class="el" href="group__libnoise.html#gga26a13">noise::QUALITY_STD</a> =  1, 
<a class="el" href="group__libnoise.html#gga26a14">noise::QUALITY_BEST</a> =  2
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enumerates the noise quality.  <a href="#ga26">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga12">noise::CubicInterp</a> (double n0, double n1, double n2, double n3, double a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Performs cubic interpolation between two values bound between two other values.  <a href="#ga12"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga13">noise::LinearInterp</a> (double n0, double n1, double a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Performs linear interpolation between two values.  <a href="#ga13"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga14">noise::SCurve3</a> (double a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps a value onto a cubic S-curve.  <a href="#ga14"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga15">noise::SCurve5</a> (double a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Maps a value onto a quintic S-curve.  <a href="#ga15"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga16">noise::LatLonToXYZ</a> (double lat, double lon, double &amp;x, double &amp;y, double &amp;z)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts latitude/longitude coordinates on a unit sphere into 3D Cartesian coordinates.  <a href="#ga16"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga17">noise::GetMax</a> (const T &amp;a, const T &amp;b)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the maximum of two values.  <a href="#ga17"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga18">noise::GetMin</a> (const T &amp;a, const T &amp;b)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the minimum of two values.  <a href="#ga18"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga19">noise::SwapValues</a> (T &amp;a, T &amp;b)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Swaps two values.  <a href="#ga19"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga20">noise::GradientCoherentNoise3D</a> (double x, double y, double z, int seed=0, <a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> noiseQuality=QUALITY_STD)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a gradient-coherent-noise value from the coordinates of a three-dimensional input value.  <a href="#ga20"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga21">noise::GradientNoise3D</a> (double fx, double fy, double fz, int ix, int iy, int iz, int seed=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a gradient-noise value from the coordinates of a three-dimensional input value and the integer coordinates of a nearby three-dimensional value.  <a href="#ga21"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga22">noise::IntValueNoise3D</a> (int x, int y, int z, int seed=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates an integer-noise value from the coordinates of a three-dimensional input value.  <a href="#ga22"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga23">noise::MakeInt32Range</a> (double n)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Modifies a floating-point value so that it can be stored in a <a class="el" href="group__libnoise.html#ga4">noise::int32</a> variable.  <a href="#ga23"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga24">noise::ValueCoherentNoise3D</a> (double x, double y, double z, int seed=0, <a class="el" href="group__libnoise.html#ga26">NoiseQuality</a> noiseQuality=QUALITY_STD)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a value-coherent-noise value from the coordinates of a three-dimensional input value.  <a href="#ga24"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga25">noise::ValueNoise3D</a> (int x, int y, int z, int seed=0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a value-noise value from the coordinates of a three-dimensional input value.  <a href="#ga25"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7" doxytag="libnoise::PI"></a>
const double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga7">noise::PI</a> = 3.1415926535897932385</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pi. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga8" doxytag="libnoise::SQRT_2"></a>
const double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga8">noise::SQRT_2</a> = 1.4142135623730950488</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Square root of 2. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga9" doxytag="libnoise::SQRT_3"></a>
const double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga9">noise::SQRT_3</a> = 1.7320508075688772935</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Square root of 3. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10" doxytag="libnoise::DEG_TO_RAD"></a>
const double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga10">noise::DEG_TO_RAD</a> = <a class="el" href="group__libnoise.html#ga7">PI</a> / 180.0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts an angle from degrees to radians. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="libnoise::RAD_TO_DEG"></a>
const double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__libnoise.html#ga11">noise::RAD_TO_DEG</a> = 1.0 / <a class="el" href="group__libnoise.html#ga10">DEG_TO_RAD</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Converts an angle from radians to degrees. <br></td></tr>
</table>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="ga26" doxytag="noise::NoiseQuality"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">enum <a class="el" href="group__libnoise.html#ga26">NoiseQuality</a>          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Enumerates the noise quality. 
<p>
<dl compact><dt><b>Enumeration values: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="gga26a12" doxytag="QUALITY_FAST"></a>QUALITY_FAST</em>&nbsp;</td><td>
Generates coherent noise quickly. 
<p>
When a coherent-noise function with this quality setting is used to generate a bump-map image, there are noticeable "creasing" artifacts in the resulting image. This is because the derivative of that function is discontinuous at integer boundaries. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga26a13" doxytag="QUALITY_STD"></a>QUALITY_STD</em>&nbsp;</td><td>
Generates standard-quality coherent noise. 
<p>
When a coherent-noise function with this quality setting is used to generate a bump-map image, there are some minor "creasing" artifacts in the resulting image. This is because the second derivative of that function is discontinuous at integer boundaries. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga26a14" doxytag="QUALITY_BEST"></a>QUALITY_BEST</em>&nbsp;</td><td>
Generates the best-quality coherent noise. 
<p>
When a coherent-noise function with this quality setting is used to generate a bump-map image, there are no "creasing" artifacts in the resulting image. This is because the first and second derivatives of that function are continuous at integer boundaries. </td></tr>
</table>
</dl>
    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ga12" doxytag="noise::CubicInterp"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double CubicInterp           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname" nowrap> <em>n0</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>n1</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>n2</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>n3</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>a</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Performs cubic interpolation between two values bound between two other values. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>n0</em>&nbsp;</td><td>The value before the first value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n1</em>&nbsp;</td><td>The first value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n2</em>&nbsp;</td><td>The second value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n3</em>&nbsp;</td><td>The value after the second value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The alpha value.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The interpolated value.</dd></dl>
The alpha value should range from 0.0 to 1.0. If the alpha value is 0.0, this function returns <em>n1</em>. If the alpha value is 1.0, this function returns <em>n2</em>.     </td>
  </tr>
</table>
<a class="anchor" name="ga17" doxytag="noise::GetMax"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" colspan="4">
template&lt;class T&gt; </td>
        </tr>
        <tr>
          <td class="md" nowrap valign="top">T GetMax           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const T &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const T &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>b</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the maximum of two values. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The first value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>The second value.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The maximum of the two values. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga18" doxytag="noise::GetMin"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" colspan="4">
template&lt;class T&gt; </td>
        </tr>
        <tr>
          <td class="md" nowrap valign="top">T GetMin           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const T &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const T &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>b</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Returns the minimum of two values. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The first value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>The second value.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The minimum of the two values. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga20" doxytag="noise::GradientCoherentNoise3D"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double noise::GradientCoherentNoise3D           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>seed</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="group__libnoise.html#ga26">NoiseQuality</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>noiseQuality</em> = <code>QUALITY_STD</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generates a gradient-coherent-noise value from the coordinates of a three-dimensional input value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>The <em>x</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>The <em>y</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>The <em>z</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>seed</em>&nbsp;</td><td>The random number seed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>noiseQuality</em>&nbsp;</td><td>The quality of the coherent-noise.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The generated gradient-coherent-noise value.</dd></dl>
The return value ranges from -1.0 to +1.0.<p>
For an explanation of the difference between <em>gradient</em> noise and <em>value</em> noise, see the comments for the <a class="el" href="group__libnoise.html#ga21">GradientNoise3D()</a> function.     </td>
  </tr>
</table>
<a class="anchor" name="ga21" doxytag="noise::GradientNoise3D"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double noise::GradientNoise3D           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname" nowrap> <em>fx</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>fy</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>fz</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>ix</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>iy</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>iz</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>seed</em> = <code>0</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generates a gradient-noise value from the coordinates of a three-dimensional input value and the integer coordinates of a nearby three-dimensional value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>fx</em>&nbsp;</td><td>The floating-point <em>x</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fy</em>&nbsp;</td><td>The floating-point <em>y</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fz</em>&nbsp;</td><td>The floating-point <em>z</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ix</em>&nbsp;</td><td>The integer <em>x</em> coordinate of a nearby value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>iy</em>&nbsp;</td><td>The integer <em>y</em> coordinate of a nearby value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>iz</em>&nbsp;</td><td>The integer <em>z</em> coordinate of a nearby value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>seed</em>&nbsp;</td><td>The random number seed.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The generated gradient-noise value.</dd></dl>
<dl compact><dt><b>Precondition:</b></dt><dd>The difference between <em>fx</em> and <em>ix</em> must be less than or equal to one.<p>
The difference between <em>fy</em> and <em>iy</em> must be less than or equal to one.<p>
The difference between <em>fz</em> and <em>iz</em> must be less than or equal to one.</dd></dl>
A <em>gradient</em>-noise function generates better-quality noise than a <em>value</em>-noise function. Most noise modules use gradient noise for this reason, although it takes much longer to calculate.<p>
The return value ranges from -1.0 to +1.0.<p>
This function generates a gradient-noise value by performing the following steps:<ul>
<li>It first calculates a random normalized vector based on the nearby integer value passed to this function.</li><li>It then calculates a new value by adding this vector to the nearby integer value passed to this function.</li><li>It then calculates the dot product of the above-generated value and the floating-point input value passed to this function.</li></ul>
<p>
A noise function differs from a random-number generator because it always returns the same output value if the same input value is passed to it.     </td>
  </tr>
</table>
<a class="anchor" name="ga22" doxytag="noise::IntValueNoise3D"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int noise::IntValueNoise3D           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>seed</em> = <code>0</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generates an integer-noise value from the coordinates of a three-dimensional input value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>The integer <em>x</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>The integer <em>y</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>The integer <em>z</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>seed</em>&nbsp;</td><td>A random number seed.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The generated integer-noise value.</dd></dl>
The return value ranges from 0 to 2147483647.<p>
A noise function differs from a random-number generator because it always returns the same output value if the same input value is passed to it.     </td>
  </tr>
</table>
<a class="anchor" name="ga16" doxytag="noise::LatLonToXYZ"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">void noise::LatLonToXYZ           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname" nowrap> <em>lat</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>lon</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Converts latitude/longitude coordinates on a unit sphere into 3D Cartesian coordinates. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lat</em>&nbsp;</td><td>The latitude, in degrees. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lon</em>&nbsp;</td><td>The longitude, in degrees. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>On exit, this parameter contains the <em>x</em> coordinate. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>On exit, this parameter contains the <em>y</em> coordinate. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>On exit, this parameter contains the <em>z</em> coordinate.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Precondition:</b></dt><dd>lat must range from <b>-90</b> to <b>+90</b>. <p>
lon must range from <b>-180</b> to <b>+180</b>. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga13" doxytag="noise::LinearInterp"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double LinearInterp           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname" nowrap> <em>n0</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>n1</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>a</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Performs linear interpolation between two values. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>n0</em>&nbsp;</td><td>The first value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n1</em>&nbsp;</td><td>The second value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The alpha value.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The interpolated value.</dd></dl>
The alpha value should range from 0.0 to 1.0. If the alpha value is 0.0, this function returns <em>n0</em>. If the alpha value is 1.0, this function returns <em>n1</em>.     </td>
  </tr>
</table>
<a class="anchor" name="ga23" doxytag="noise::MakeInt32Range"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double MakeInt32Range           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>n</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Modifies a floating-point value so that it can be stored in a <a class="el" href="group__libnoise.html#ga4">noise::int32</a> variable. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>A floating-point number.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The modified floating-point number.</dd></dl>
This function does not modify <em>n</em>.<p>
In libnoise, the noise-generating algorithms are all integer-based; they use variables of type <a class="el" href="group__libnoise.html#ga4">noise::int32</a>. Before calling a noise function, pass the <em>x</em>, <em>y</em>, and <em>z</em> coordinates to this function to ensure that these coordinates can be cast to a <a class="el" href="group__libnoise.html#ga4">noise::int32</a> value.<p>
Although you could do a straight cast from double to <a class="el" href="group__libnoise.html#ga4">noise::int32</a>, the resulting value may differ between platforms. By using this function, you ensure that the resulting value is identical between platforms.     </td>
  </tr>
</table>
<a class="anchor" name="ga14" doxytag="noise::SCurve3"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double SCurve3           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>a</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Maps a value onto a cubic S-curve. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The value to map onto a cubic S-curve.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The mapped value.</dd></dl>
<em>a</em> should range from 0.0 to 1.0.<p>
The derivitive of a cubic S-curve is zero at <em>a</em> = 0.0 and <em>a</em> = 1.0     </td>
  </tr>
</table>
<a class="anchor" name="ga15" doxytag="noise::SCurve5"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double SCurve5           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>a</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Maps a value onto a quintic S-curve. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>The value to map onto a quintic S-curve.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The mapped value.</dd></dl>
<em>a</em> should range from 0.0 to 1.0.<p>
The first derivitive of a quintic S-curve is zero at <em>a</em> = 0.0 and <em>a</em> = 1.0<p>
The second derivitive of a quintic S-curve is zero at <em>a</em> = 0.0 and <em>a</em> = 1.0     </td>
  </tr>
</table>
<a class="anchor" name="ga19" doxytag="noise::SwapValues"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" colspan="4">
template&lt;class T&gt; </td>
        </tr>
        <tr>
          <td class="md" nowrap valign="top">void SwapValues           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">T &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>T &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>b</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Swaps two values. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td>A variable containing the first value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td>A variable containing the second value.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Postcondition:</b></dt><dd>The values within the the two variables are swapped. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga24" doxytag="noise::ValueCoherentNoise3D"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double noise::ValueCoherentNoise3D           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">double&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>double&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>seed</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="group__libnoise.html#ga26">NoiseQuality</a>&nbsp;</td>
          <td class="mdname" nowrap> <em>noiseQuality</em> = <code>QUALITY_STD</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generates a value-coherent-noise value from the coordinates of a three-dimensional input value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>The <em>x</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>The <em>y</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>The <em>z</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>seed</em>&nbsp;</td><td>The random number seed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>noiseQuality</em>&nbsp;</td><td>The quality of the coherent-noise.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The generated value-coherent-noise value.</dd></dl>
The return value ranges from -1.0 to +1.0.<p>
For an explanation of the difference between <em>gradient</em> noise and <em>value</em> noise, see the comments for the <a class="el" href="group__libnoise.html#ga21">GradientNoise3D()</a> function.     </td>
  </tr>
</table>
<a class="anchor" name="ga25" doxytag="noise::ValueNoise3D"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">double noise::ValueNoise3D           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>z</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>seed</em> = <code>0</code></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Generates a value-noise value from the coordinates of a three-dimensional input value. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>The <em>x</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>y</em>&nbsp;</td><td>The <em>y</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>The <em>z</em> coordinate of the input value. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>seed</em>&nbsp;</td><td>A random number seed.</td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>The generated value-noise value.</dd></dl>
The return value ranges from -1.0 to +1.0.<p>
A noise function differs from a random-number generator because it always returns the same output value if the same input value is passed to it.     </td>
  </tr>
</table>
<!-- end rich gooey content -->

    </td>
   </tr>
   <tr>
    <td class='footer' colspan='2'>
     <p>
      &copy; 2003-2005 Jason Bevins
     </p>
     <p>
      <a href='http://www.doxygen.org/'><img src='doxygen.png' alt='Doxygen logo'></a>
      <br>
      The libnoise source documentation was generated by <a href='http://www.doxygen.org/'>doxygen</a> 1.3.9.1
     </p>
    </td>
   </tr>
  </table>
 </body>
</html>
